#ifndef __CONTROLLER_P2P_H_
#define __CONTROLLER_P2P_H_

#include <motion_controller/controller/state_machine.h>

class ProcessorP2P : public StateMachineBase{
    public:
        ProcessorP2P(boost::shared_ptr<PlannerBase> path_planner_ptr,
            boost::shared_ptr<ControllerBase> localControllerPtr);
        ~ProcessorP2P();

        /********************
         *  虚函数实现
         ********************/
        // 设置目标点数据
        void setGoal(geometry_msgs::PoseStamped pose_stamp);
        // IDLE数据重置
        void ResetIdle();
        // 执行中预处理函数
        void ExecutingEntry();
        // 执行中处理函数
        void ExecutingRunning();
        // 执行中后处理函数
        void ExecutingExit();

    private:
        boost::shared_ptr<PlannerBase> globalPathPlannerPtr_;
        boost::shared_ptr<ControllerBase> localControllerPtr_;
        geometry_msgs::PoseStamped goalPoseStamp_;
        bool __rotate_start_direction;
        bool setGoalPose_;


};

#endif